#include <iostream>
#include <fstream>

using namespace std;

// 这个案例说明：二进制写文件的时候，写入的字节和内存中一模一样，也就是写的是补码
void test()
{
    ofstream ofs("abc.bin", ios::binary | ios::trunc);
    if (!ofs.is_open())
    {
        cout << "open failed!" << endl;
        return;
    }

    // int a = 0XFFFFFFFF;  // 存的是-1的补码
    int a = -1;             // -1 原码 0x80000001  补码0xFFFFFFFF
    cout << "a = " << static_cast<unsigned int>(a) << endl;
    
    ofs.write(reinterpret_cast<const char *>(&a), sizeof(a));

    ofs.close();
}

int main()
{
    test();
    return 0;
}